package dao;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import pojo.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author Admin
 * @date 2022/11/18 18:18
 * @Description TODO
 * @Version 1.0
 **/
public interface PoMainMapper extends BaseMapper<PoMain>{
    PoMain getPoMainByPoID(String poID);
    List<PoItem> getItemsByPoID(String poID);
    List<PoItem> cxPoMainByPoID(PoMain poMain);
    PoMain checkPomainByPoID(String poID);
    PoMain updatePomainByPoID(BigDecimal poId);
    int AddPoMain(PoMain p);
    int AddPoItem(PoItem poItem);
    int DelPoMain(PoMain poMain);
    int DelPoItem(PoItem poItem);
    int updatePoMain(PoMain poMain);
    int updatePoItem(PoItem poItem);
    //了结分页
    List<PoMain>getPoMainPage(@Param("page") Page<PoMain> page,@Param("pomain") PoMain poMain,@Param("type") int payType);
    //了结分页总条数
    int getCountPoMain(@Param("pomain") PoMain poMain,@Param("type") int payType);
    int endUpdate(PoMain poMain);
    //采购单查询
    List<PoMain> poMainAllByPage(@Param("page1") Page<PoMain> page, @Param("pomain1") PoMain poMain);
    int PoMainCount(@Param("page1") Page<PoMain> page, @Param("pomain1") PoMain poMain);
    //入库登记分页
    List<PoMain> inboundAllByPage(@Param("page2")Page<PoMain> page,@Param("pomain2") PoMain poMain,@Param("type2") int payType);
    //入库分页总条数
    int inboundCountPoMain(@Param("pomain2") PoMain poMain,@Param("type2") int payType);
    //点击入库(修改)
    int updateInbound(PoMain poMain);
    //入库(新增)
    int addStock(Stockrecord stockrecord);
    int updNum (@Param("product") Product product,@Param("num")int num);
    List<PoItem> getNum(BigDecimal poId);

    List<PoMain> outMoneyAllByPage(@Param("page3")Page<PoMain> page,@Param("pomain3") PoMain poMain,@Param("type3") int payType);
    //入库分页总条数
    int outMoneyCountPoMain(@Param("pomain3") PoMain poMain,@Param("type3") int payType);
    int updateoutMoney(PoMain poMain);
    int updateoutMoney1(PoMain poMain);
    //收付款登记新增
    int addoutMoney(Payrecord payrecord);
    int addoutMoney1(Payrecord payRecord);
    PoMain getPoMains(String poId);
    //月度采购报表
    List<PoMain> poReportPage(@Param("page4") Page<PoMain> page, @Param("pomain4") PoMain poMain);
    int poReportCount(@Param("page4") Page<PoMain> page, @Param("pomain4") PoMain poMain);
    List<PoMain> poReportPage1(PoMain pomain);
    int poReportCount1(PoMain pomain);

    @Select("select count(*) from pomain")
    int getPoCount();
    @Select("select count(*) from pomain where status = 4")
    int getEndCountInt();
    @Select("select sum(poTotal) from pomain")
    float getPoTotalPrice();
    @Select("select sum(payPrice) from payrecord where payType=2 or payType= 4")
    float getPayPriceFloat();


}
